*This file can be used to replicate all the results in the paper and in the supplementary online material for "Macroeconomic Conditions When Young Shape Job Preferences for Life"

* This file should be run after the gss_cleaning.do file. 


cd ""

clear all
use "Gss_final.dta"

***Figure 1: Preferences for meaning (Panel A) and income (Panel B) across different age groupsand over time.  ***

** Panel A **

preserve
collapse (mean) jobmeans (mean)unemploy_rate (sd) sd=jobmeans (count) N = jobmeans, by(year agegroup)

twoway (connect jobmeans year if agegroup==1 & year<=1994, color(black) lwidth(medthick) ) ///
(connect jobmeans year if agegroup==1 & year>1994, color(black) lwidth(medthick) ) ///
(connect jobmeans year if agegroup==2 & year<=1994, color(red) lwidth(medthick) lpattern(dash)) ///
(connect jobmeans year if agegroup==2 & year>1994, color(red) lwidth(medthick) lpattern(dash)) ///
(connect jobmeans year if agegroup==3 & year<=1994, color(blue) lwidth(medthick) lpattern(shortdash)) ///
(connect jobmeans year if agegroup==3 & year>1994, color(blue) lwidth(medthick) lpattern(shortdash)) ///
(line unemploy_rate year, color(gs8) lpattern(longdash) yaxis(2)), ///
graphregion(color(white)) xlabel (1970 (5) 2015) xscale(range(1972 2017)) ///
xtitle(" " "") ytitle("Ranking of attribute importance (1=least; 5=most)") ///
legend(order( 1 "18-25 years" 3 "26-50 years" 5 "51-75 years" 7 "Unemployment rate" )) ///
ylabel(3(0.3)4.3)  name(meaning_ranked, replace) subtitle(Panel A: Importance of job meaning)
restore


** Panel B **


preserve
collapse (mean) jobinc (mean)unemploy_rate (sd) sd=jobinc (count) N = jobinc, by(year agegroup)

twoway (connect jobinc year if agegroup==1 & year<=1994, color(black) lwidth(medthick) ) ///
(connect jobinc year if agegroup==1 & year>1994, color(black) lwidth(medthick) ) ///
(connect jobinc year if agegroup==2 & year<=1994, color(red) lwidth(medthick) lpattern(dash)) ///
(connect jobinc year if agegroup==2 & year>1994, color(red) lwidth(medthick) lpattern(dash)) ///
(connect jobinc year if agegroup==3 & year<=1994, color(blue) lwidth(medthick) lpattern(shortdash)) ///
(connect jobinc year if agegroup==3 & year>1994, color(blue) lwidth(medthick) lpattern(shortdash)) ///
(line unemploy_rate year, color(gs8) lpattern(longdash) yaxis(2)), ///
graphregion(color(white)) xlabel (1970 (5) 2015) xscale(range(1972 2014)) ///
xtitle(" " "") ytitle("Ranking of attribute importance (1=least; 5=most)") ///
legend(order( 1 "18-25 years"  3 "26-50 years" 5 "51-75 years" 7 "Unemployment rate" )) ///
ylabel(3(0.3)4.3)  name(income_ranked, replace) subtitle(Panel B: Importance of job income)
restore



***Table 1: Experienced regional income during the impressionable years and job preferences for meaning and income ***

* Column (1)
reg jobmeans income_exp_1825 lnincome income_na i.year i.sex i.race i.marital i.educ i.age i.generation i.wrkstat sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region i.reg16 [pweight=wtssall], robust
estimates store a1
* standard errors clusterred at the level of the region at age 16, bootstrapped (in brackets in the table)
boottest  income_exp_1825, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph

* Column (2)
reg jobmeans income_exp_1825 i.year i.sex i.race i.marital i.age i.generation sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region i.reg16 [pweight=wtssall] if e(sample), robust
estimates store a2
* standard errors clusterred at the level of the region at age 16, bootstrapped (in brackets in the table)
boottest  income_exp_1825, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph

* Column (3)
reg jobinc income_exp_1825 lnincome income_na i.year i.sex i.race i.marital i.educ i.age i.generation i.wrkstat sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region i.reg16 [pweight=wtssall], robust
estimates store a3
* standard errors clusterred at the level of the region at age 16, bootstrapped (in brackets in the table)
boottest  income_exp_1825, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph

* Column (4)
reg jobinc income_exp_1825 i.year i.sex i.race i.marital i.age i.generation sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region i.reg16 [pweight=wtssall] if e(sample), robust
estimates store a4
* standard errors clusterred at the level of the region at age 16, bootstrapped (in brackets in the table)
boottest  income_exp_1825, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph

estout a1 a2 a3 a4 , cells(b(star fmt(3)) se(par fmt(3))) starlevels (* 0.10 ** 0.05 *** 0.01) legend label varlabels(_cons Constant income_exp_1825 "Income Level 18-25" lnincome "Income" income_na "Income imputed" year "Year" sex "Gender" race "Race" marital "Marital Status" educ "Years of Education" age "Age" generation "Birth Decade" wrkstat "Working Status" sqrt_hshsize "Household Size (squared)" childs "Number of Children" paeduc_imp "Father Education" maeduc_imp "Mother Education" incom16_imp "Household Income at Age16" paeduc_m "Father Education Imputed" maeduc_m "Mother Education Imputed" incom16_m "Household Income at Age16 Imputed" region "Region" reg16 "Region at 16" w_unemp "Unemployment Level 18-25") stats(N F r2, fmt(3 3) label(N F-value R-squared)) style(tex)


***Table 2: Experienced regional income during the impression-able years and job preferences for meaning and in-come: lifetime decay ***

* Column (1)
reg jobmeans income_exp_1825 agegroup_2 agegroup_3 lnincome income_na i.year i.sex i.race i.marital i.educ i.age i.generation i.wrkstat sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region i.reg16 [pweight=wtssall], robust
estimates store a1
* standard errors clusterred at the level of the region at age 16, bootstrapped (in brackets in the table)
boottest  income_exp_1825, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph
boottest  agegroup_2, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph
boottest  agegroup_3, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph

* Column (2)
reg jobinc income_exp_1825 agegroup_2 agegroup_3 lnincome income_na i.year i.sex i.race i.marital i.educ i.age i.generation i.wrkstat sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region i.reg16 [pweight=wtssall], robust
estimates store a2
* standard errors clusterred at the level of the region at age 16, bootstrapped (in brackets in the table)
boottest  income_exp_1825, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph
boottest  agegroup_2, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph
boottest  agegroup_3, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph

estout a1 a2, cells(b(star fmt(3)) se(par fmt(3))) starlevels (* 0.10 ** 0.05 *** 0.01) legend label varlabels(_cons Constant income_exp_1825 "Income Level 18-25" lnincome "Income" income_na "Income imputed" year "Year" sex "Gender" race "Race" marital "Marital Status" educ "Years of Education" age "Age" generation "Birth Decade" wrkstat "Working Status" sqrt_hshsize "Household Size (squared)" childs "Number of Children" paeduc_imp "Father Education" maeduc_imp "Mother Education" incom16_imp "Household Income at Age16" paeduc_m "Father Education Imputed" maeduc_m "Mother Education Imputed" incom16_m "Household Income at Age16 Imputed" region "Region" reg16 "Region at 16" w_unemp "Unemployment Level 18-25") stats(N F r2, fmt(3 3) label(N F-value R-squared)) style(tex)

//////////////////////Supplementary Online Material//////////////////////////////

***Figure A1: Preferences for advancement, job security, and short hours, acrossdifferent age groups and over time****

clear all
use "Gss_final.dta"

** Panel A **

preserve
collapse (mean) jobpromo (mean)unemploy_rate (sd) sd=jobpromo (count) N = jobmeans, by(year agegroup)

twoway (connect jobpromo year if agegroup==1 & year<=1994, color(black) lwidth(medthick) ) ///
(connect jobpromo year if agegroup==1 & year>1994, color(black) lwidth(medthick) ) ///
(connect jobpromo year if agegroup==2 & year<=1994, color(red) lwidth(medthick) lpattern(dash)) ///
(connect jobpromo year if agegroup==2 & year>1994, color(red) lwidth(medthick) lpattern(dash)) ///
(connect jobpromo year if agegroup==3 & year<=1994, color(blue) lwidth(medthick) lpattern(shortdash)) ///
(connect jobpromo year if agegroup==3 & year>1994, color(blue) lwidth(medthick) lpattern(shortdash)) ///
(line unemploy_rate year, color(gs8) lpattern(longdash) yaxis(2)), ///
graphregion(color(white)) xlabel (1970 (5) 2015) xscale(range(1972 2017)) ///
xtitle(" " "") ytitle("Ranking of attribute importance (1=least; 5=most)") ///
legend(order( 1 "18-25 years" 3 "26-50 years" 5 "51-75 years" 7 "Unemployment rate" )) ///
ylabel(2.7(0.3)3.9)  name(promotions_ranked, replace) subtitle(Panel A: Importance of propotions)
restore

** Panel B ** 

preserve
collapse (mean) jobsec (mean)unemploy_rate (sd) sd=jobsec (count) N = jobmeans, by(year agegroup)

twoway (connect jobsec year if agegroup==1 & year<=1994, color(black) lwidth(medthick) ) ///
(connect jobsec year if agegroup==1 & year>1994, color(black) lwidth(medthick) ) ///
(connect jobsec year if agegroup==2 & year<=1994, color(red) lwidth(medthick) lpattern(dash)) ///
(connect jobsec year if agegroup==2 & year>1994, color(red) lwidth(medthick) lpattern(dash)) ///
(connect jobsec year if agegroup==3 & year<=1994, color(blue) lwidth(medthick) lpattern(shortdash)) ///
(connect jobsec year if agegroup==3 & year>1994, color(blue) lwidth(medthick) lpattern(shortdash)) ///
(line unemploy_rate year, color(gs8) lpattern(longdash) yaxis(2)), ///
graphregion(color(white)) xlabel (1970 (5) 2015) xscale(range(1972 2017)) ///
xtitle(" " "") ytitle("Ranking of attribute importance (1=least; 5=most)") ///
legend(order( 1 "18-25 years" 3 "26-50 years" 5 "51-75 years" 7 "Unemployment rate" )) ///
ylabel(1.8(0.3)3)  name(security_ranked, replace) subtitle(Panel B: Importance of job security)
restore


** Panel C **

preserve
collapse (mean) jobhour (mean)unemploy_rate (sd) sd=jobhour (count) N = jobmeans, by(year agegroup)

twoway (connect jobhour year if agegroup==1 & year<=1994, color(black) lwidth(medthick) ) ///
(connect jobhour year if agegroup==1 & year>1994, color(black) lwidth(medthick) ) ///
(connect jobhour year if agegroup==2 & year<=1994, color(red) lwidth(medthick) lpattern(dash)) ///
(connect jobhour year if agegroup==2 & year>1994, color(red) lwidth(medthick) lpattern(dash)) ///
(connect jobhour year if agegroup==3 & year<=1994, color(blue) lwidth(medthick) lpattern(shortdash)) ///
(connect jobhour year if agegroup==3 & year>1994, color(blue) lwidth(medthick) lpattern(shortdash)) ///
(line unemploy_rate year, color(gs8) lpattern(longdash) yaxis(2)), ///
graphregion(color(white)) xlabel (1970 (5) 2015) xscale(range(1972 2017)) ///
xtitle(" " "") ytitle("Ranking of attribute importance (1=least; 5=most)") ///
legend(order( 1 "18-25 years" 3 "26-50 years" 5 "51-75 years" 7 "Unemployment rate" )) ///
ylabel(1.2(0.3)2.4)  name(hours_ranked, replace) subtitle(Panel C: Importance of short hours)
restore

*** Figures A2, A3, and A4:  Age, year, and decade-of-birth fixed effects

***Figure A2: Age Fixed Effects***

** Panel A: Job Meaning

reg jobmeans income_exp_1825 lnincome income_na i.year i.sex i.race i.marital i.educ i.age i.generation i.wrkstat sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region i.reg16 [pweight=wtssall], robust
coefplot, xline(0) keep (*.age) coeflabels(18.age="18" 19.age="19" 20.age="20" 21.age="21" 22.age="22" 23.age="23" 24.age="24" 25.age="25" 26.age="26" 27.age="27" 28.age="28" 29.age="29" 30.age="30" 31.age="31" 32.age="32" 33.age="33" 34.age="34" 35.age="35" 36.age="36" 37.age="37"  38.age="38" 39.age="39" 40.age="40" 41.age="41" 42.age="42" 43.age="43" 44.age="44" 45.age="45" 46.age="46" 47.age="47" 48.age="48" 49.age="49" 50.age="50" 51.age="51" 52.age="52" 53.age="33" 54.age="54" 55.age="55" 56.age="56" 57.age="57" 58.age="58" 59.age="59" 60.age="60" 61.age="61" 62.age="62" 63.age="63" 64.age="64" 65.age="65" 66.age="66" 67.age="67" 68.age="68" 69.age="69" 70.age="70" 71.age="71" 72.age="72" 73.age="73" 74.age="74" 75.age="75") omitted baselevels

** Panel B: Job Income

reg jobinc income_exp_1825 lnincome income_na i.year i.sex i.race i.marital i.educ i.age i.generation i.wrkstat sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region i.reg16 [pweight=wtssall], robust
coefplot, xline(0) keep (*.age) coeflabels(18.age="18" 19.age="19" 20.age="20" 21.age="21" 22.age="22" 23.age="23" 24.age="24" 25.age="25" 26.age="26" 27.age="27" 28.age="28" 29.age="29" 30.age="30" 31.age="31" 32.age="32" 33.age="33" 34.age="34" 35.age="35" 36.age="36" 37.age="37"  38.age="38" 39.age="39" 40.age="40" 41.age="41" 42.age="42" 43.age="43" 44.age="44" 45.age="45" 46.age="46" 47.age="47" 48.age="48" 49.age="49" 50.age="50" 51.age="51" 52.age="52" 53.age="33" 54.age="54" 55.age="55" 56.age="56" 57.age="57" 58.age="58" 59.age="59" 60.age="60" 61.age="61" 62.age="62" 63.age="63" 64.age="64" 65.age="65" 66.age="66" 67.age="67" 68.age="68" 69.age="69" 70.age="70" 71.age="71" 72.age="72" 73.age="73" 74.age="74" 75.age="75") omitted baselevels


***Figure A3: Year Fixed Effects***

** Panel A: Job Meaning **

reg jobmeans income_exp_1825 lnincome income_na i.year i.sex i.race i.marital i.educ i.age i.generation i.wrkstat sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region i.reg16 [pweight=wtssall], robust
coefplot, xline(0) keep (*.year) coeflabels(1973.year="1973" 1974.year="1974" 1976.year="1976" 1977.year="1977" 1980.year="1980" 1982.year="1982" 1984.year="1984" 1985.year="1985" 1987.year="1987" 1988.year="1988" 1989.year="1989" 1990.year="1990" 1991.year="1991" 1993.year="1993" 1994.year="1994" 2006.year="2006" 2012.year="2012" 2014.year="2014") omitted baselevels

** Panel B: Job Income **

reg jobinc income_exp_1825 lnincome income_na i.year i.sex i.race i.marital i.educ i.age i.generation i.wrkstat sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region i.reg16 [pweight=wtssall], robust
coefplot, xline(0) keep (*.year) coeflabels(1973.year="1973" 1974.year="1974" 1976.year="1976" 1977.year="1977" 1980.year="1980" 1982.year="1982" 1984.year="1984" 1985.year="1985" 1987.year="1987" 1988.year="1988" 1989.year="1989" 1990.year="1990" 1991.year="1991" 1993.year="1993" 1994.year="1994" 2006.year="2006" 2012.year="2012" 2014.year="2014") omitted baselevels

***Figure A4: Birth-decade Fixed Effects***

** Panel A: Job Meaning **

reg jobmeans income_exp_1825 lnincome income_na i.year i.sex i.race i.marital i.educ i.age i.generation i.wrkstat sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region i.reg16 [pweight=wtssall], robust
coefplot, xline(0) keep (*.generation) coeflabels(1.generation="<1910" 2.generation="1910-1919" 3.generation="1920-1929" 4.generation="1930-1939" 5.generation="1940-1949" 6.generation="1950-1959" 7.generation="1960-1969" 8.generation="1970-1979" 9.generation="1980-1989" 10.generation="1990-1998") omitted baselevels

** Panel B: Job Income **

reg jobinc income_exp_1825 lnincome income_na i.year i.sex i.race i.marital i.educ i.age i.generation i.wrkstat sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region i.reg16 [pweight=wtssall], robust
coefplot, xline(0) keep (*.generation) coeflabels(1.generation="<1910" 2.generation="1910-1919" 3.generation="1920-1929" 4.generation="1930-1939" 5.generation="1940-1949" 6.generation="1950-1959" 7.generation="1960-1969" 8.generation="1970-1979" 9.generation="1980-1989" 10.generation="1990-1998") omitted baselevels

*** Figure A5: Income per capita across the nine US regions between 1929 and 2014 ***

clear all
use "FinalIncome.dta"

separate loginccap_R, by(region) 
twoway (connect loginccap_R1 year, msize(vtiny)) (connect loginccap_R2 year, msize(vtiny)) (connect loginccap_R3 year, msize(vtiny)) (connect loginccap_R4 year, msize(vtiny)) (connect loginccap_R5 year, msize(vtiny)) (connect loginccap_R6 year, msize(vtiny)) (connect loginccap_R7 year, msize(vtiny)) (connect loginccap_R8 year, msize(vtiny)) (connect loginccap_R9 year, msize(vtiny)) , ///
 ytitle(Regional income per capita (log)) ///
 legend(order( 1 "New England" 2 "Middle Atlantic" 3 "EN Central" 4 "WN Central" 5 "S Atlantic" 6 "ES Central" 7 "WS Central" 8 "Mountain" 9 "Pacific")) xlabel (1929 (10) 2009) xscale(range(1929 2014))
 
clear all
use "Gss_final.dta"

 ***Table A1: Descriptive Statistics***
 
reg jobmeans income_exp_1825 lnincome income_na i.year i.sex i.race i.marital i.educ i.age i.generation i.wrkstat sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region i.reg16 [pweight=wtssall], robust

sum jobmeans if e(sample)
sum jobinc if e(sample)
sum jobpromo if e(sample)
sum jobsec if e(sample)
sum jobhour if e(sample)

replace sex=0 if sex==2
sum sex if e(sample)
sum educ if e(sample)
sum age if e(sample)
sum birth if e(sample)
 

sum income_imputed if e(sample)
sum hompop if e(sample)
sum childs if e(sample)

gen married=.
replace married=1 if marital==1
replace married=0 if marital>1 & marital<=5
sum married if e(sample)

gen white=.
replace white=1 if race==1
replace white=0 if race==2 | race==3
sum white if e(sample)


gen fulltime=.
replace fulltime=1 if wrkstat==1
replace fulltime=0 if wrkstat>1 & wrkstat<=8
sum fulltime if e(sample)

gen parttime=.
replace parttime=1 if wrkstat==2
replace parttime=0 if wrkstat>2 & wrkstat<=8 | wrkstat==1
sum parttime if e(sample)

gen temp=.
replace temp=1 if wrkstat==3
replace temp=0 if wrkstat>3 & wrkstat<=8 | wrkstat>=1 & wrkstat<=2
sum temp if e(sample)

gen unemp=.
replace unemp=1 if wrkstat==4
replace unemp=0 if wrkstat>4 & wrkstat<=8 | wrkstat>=1 & wrkstat<=3
sum unemp if e(sample)

gen retired=.
replace retired=1 if wrkstat==5
replace retired=0 if wrkstat>5 & wrkstat<=8 | wrkstat>=1 & wrkstat<=4
sum retired if e(sample)

gen school=.
replace school=1 if wrkstat==6
replace school=0 if wrkstat>6 & wrkstat<=8 | wrkstat>=1 & wrkstat<=5
sum school if e(sample)

gen house=.
replace house=1 if wrkstat==7
replace house=0 if wrkstat>7 & wrkstat<=8 | wrkstat>=1 & wrkstat<=6
sum house if e(sample)

sum maeduc if e(sample)
sum paeduc if e(sample)
sum incom16 if e(sample)

sum w_unemp  if e(sample)
sum w_income_1825  if e(sample)


***Table A2: Restrict analysis to non-movers and movers***

clear all
use "Gss_final.dta"

* Columns (1) and (2): Non-movers

keep if reg16==region

*Column (1)
reg jobmeans income_exp_1825 lnincome income_na i.year i.sex i.race i.marital i.educ i.age i.generation i.wrkstat sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region  [pweight=wtssall], robust
estimates store a1
* standard errors clusterred at the level of the region at age 16, bootstrapped (in brackets in the table)
boottest  income_exp_1825, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph

*Column (2)
reg jobinc income_exp_1825 lnincome income_na i.year i.sex i.race i.marital i.educ i.age i.generation i.wrkstat sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region  [pweight=wtssall], robust
estimates store a2
* standard errors clusterred at the level of the region at age 16, bootstrapped (in brackets in the table)
boottest  income_exp_1825, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph

estout a1 a2 , cells(b(star fmt(3)) se(par fmt(3))) starlevels (* 0.10 ** 0.05 *** 0.01) legend label varlabels(_cons Constant income_exp_1825 "Income Level 18-25" lnincome "Income" income_na "Income imputed" year "Year" sex "Gender" race "Race" marital "Marital Status" educ "Years of Education" age "Age" generation "Birth Decade" wrkstat "Working Status" sqrt_hshsize "Household Size (squared)" childs "Number of Children" paeduc_imp "Father Education" maeduc_imp "Mother Education" incom16_imp "Household Income at Age16" paeduc_m "Father Education Imputed" maeduc_m "Mother Education Imputed" incom16_m "Household Income at Age16 Imputed" region "Region" reg16 "Region at 16" w_unemp "Unemployment Level 18-25") stats(N F r2, fmt(3 3) label(N F-value R-squared)) style(tex)

clear all
use "Gss_final.dta"

* Columns (3) and (4): Movers

keep if reg16!=region

*Column (3)
reg jobmeans income_exp_1825 lnincome income_na i.year i.sex i.race i.marital i.educ i.age i.generation i.wrkstat sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region i.reg16  [pweight=wtssall], robust
estimates store a3
* standard errors clusterred at the level of the region at age 16, bootstrapped (in brackets in the table)
boottest  income_exp_1825, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph

*Column (4)
reg jobinc income_exp_1825 lnincome income_na i.year i.sex i.race i.marital i.educ i.age i.generation i.wrkstat sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region i.reg16 [pweight=wtssall], robust
estimates store a4
* standard errors clusterred at the level of the region at age 16, bootstrapped (in brackets in the table)
boottest  income_exp_1825, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph

estout a3 a4 , cells(b(star fmt(3)) se(par fmt(3))) starlevels (* 0.10 ** 0.05 *** 0.01) legend label varlabels(_cons Constant income_exp_1825 "Income Level 18-25" lnincome "Income" income_na "Income imputed" year "Year" sex "Gender" race "Race" marital "Marital Status" educ "Years of Education" age "Age" generation "Birth Decade" wrkstat "Working Status" sqrt_hshsize "Household Size (squared)" childs "Number of Children" paeduc_imp "Father Education" maeduc_imp "Mother Education" incom16_imp "Household Income at Age16" paeduc_m "Father Education Imputed" maeduc_m "Mother Education Imputed" incom16_m "Household Income at Age16 Imputed" region "Region" reg16 "Region at 16" w_unemp "Unemployment Level 18-25") stats(N F r2, fmt(3 3) label(N F-value R-squared)) style(tex)


*** Table A3: Unemployment experience and preferences for job attributes ***

clear all
use "Gss_final.dta"

*Column (1)
reg jobmeans w_unemp lnincome income_na i.year i.sex i.race i.marital i.educ i.age i.generation i.wrkstat sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region i.reg16 [pweight=wtssall], robust
estimates store a1
* standard errors clusterred at the level of the region at age 16, bootstrapped (in brackets in the table)
boottest  w_unemp, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph

*Column (2)
reg jobmeans w_unemp i.year i.sex i.race i.marital i.age i.generation sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region i.reg16 [pweight=wtssall] if e(sample), robust 
estimates store a2
* standard errors clusterred at the level of the region at age 16, bootstrapped (in brackets in the table)
boottest  w_unemp, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph

*Column (3)
reg jobinc w_unemp lnincome income_na i.year i.sex i.race i.marital i.educ i.age i.generation i.wrkstat sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region i.reg16 [pweight=wtssall], robust
estimates store a3
* standard errors clusterred at the level of the region at age 16, bootstrapped (in brackets in the table)
boottest  w_unemp, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph

*Column (4)
reg jobinc w_unemp i.year i.sex i.race i.marital i.age i.generation sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region i.reg16 [pweight=wtssall] if e(sample), robust 
estimates store a4
* standard errors clusterred at the level of the region at age 16, bootstrapped (in brackets in the table)
boottest  w_unemp, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph

estout a1 a2 a3 a4 , cells(b(star fmt(3)) se(par fmt(3))) starlevels (* 0.10 ** 0.05 *** 0.01) legend label varlabels(_cons Constant income_exp_1825 "Income Level 18-25" lnincome "Income" income_na "Income imputed" year "Year" sex "Gender" race "Race" marital "Marital Status" educ "Years of Education" age "Age" generation "Birth Decade" wrkstat "Working Status" sqrt_hshsize "Household Size (squared)" childs "Number of Children" paeduc_imp "Father Education" maeduc_imp "Mother Education" incom16_imp "Household Income at Age16" paeduc_m "Father Education Imputed" maeduc_m "Mother Education Imputed" incom16_m "Household Income at Age16 Imputed" region "Region" reg16 "Region at 16" w_unemp "Unemployment Level 18-25") stats(N F r2, fmt(3 3) label(N F-value R-squared)) style(tex)


*** Table A4: Alternative definition of generations and age categories***

clear all
use "Gss_final.dta"

*Column (1)
reg jobmeans income_exp_1825 lnincome income_na i.year i.sex i.race i.marital i.educ i.age i.birthcat i.wrkstat sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region i.reg16 [pweight=wtssall], robust
estimates store a1
* standard errors clusterred at the level of the region at age 16, bootstrapped (in brackets in the table)
boottest  income_exp_1825, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph

*Column (2)
reg jobmeans income_exp_1825 lnincome income_na i.year i.sex i.race i.marital i.educ i.agecat i.birth i.wrkstat sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region i.reg16 [pweight=wtssall], robust
estimates store a2
* standard errors clusterred at the level of the region at age 16, bootstrapped (in brackets in the table)
boottest  income_exp_1825, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph

*Column (3)
reg jobinc income_exp_1825 lnincome income_na i.year i.sex i.race i.marital i.educ i.age i.birthcat i.wrkstat sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region i.reg16 [pweight=wtssall], robust
estimates store a3
* standard errors clusterred at the level of the region at age 16, bootstrapped (in brackets in the table)
boottest  income_exp_1825, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph

*Column (4)
reg jobinc income_exp_1825 lnincome income_na i.year i.sex i.race i.marital i.educ i.agecat i.birth i.wrkstat sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region i.reg16 [pweight=wtssall], robust
estimates store a4
* standard errors clusterred at the level of the region at age 16, bootstrapped (in brackets in the table)
boottest  income_exp_1825, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph

estout a1 a2 a3 a4 , cells(b(star fmt(3)) se(par fmt(3))) starlevels (* 0.10 ** 0.05 *** 0.01) legend label varlabels(_cons Constant income_exp_1825 "Income Level 18-25" lnincome "Income" income_na "Income imputed" year "Year" sex "Gender" race "Race" marital "Marital Status" educ "Years of Education" age "Age" generation "Birth Decade" wrkstat "Working Status" sqrt_hshsize "Household Size (squared)" childs "Number of Children" paeduc_imp "Father Education" maeduc_imp "Mother Education" incom16_imp "Household Income at Age16" paeduc_m "Father Education Imputed" maeduc_m "Mother Education Imputed" incom16_m "Household Income at Age16 Imputed" region "Region" reg16 "Region at 16" w_unemp "Unemployment Level 18-25") stats(N F r2, fmt(3 3) label(N F-value R-squared)) style(tex)

*** Table A5: Results using year-of-birth fixed effects instead of decade-of-birth fixedeffects ***

clear all
use "Gss_final.dta"

reg jobmeans income_exp_1825 lnincome income_na i.year i.sex i.race i.marital i.educ i.age i.generation i.wrkstat sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region i.reg16  [pweight=wtssall], robust
tab birth if e(sample)

replace birth=1905 if birth==1904

tab birth if e(sample)

* Column (1)
reg jobmeans income_exp_1825 lnincome income_na i.year i.sex i.race i.marital i.educ i.age i.birth i.wrkstat sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region i.reg16  [pweight=wtssall], robust
estimates store a1
* standard errors clusterred at the level of the region at age 16, bootstrapped (in brackets in the table)
boottest  income_exp_1825, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph

*Column (2)
reg jobinc income_exp_1825 lnincome income_na i.year i.sex i.race i.marital i.educ i.age i.birth i.wrkstat sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region i.reg16 [pweight=wtssall], robust
estimates store a2
* standard errors clusterred at the level of the region at age 16, bootstrapped (in brackets in the table)
boottest  income_exp_1825, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph

estout a1 a2, cells(b(star fmt(3)) se(par fmt(3))) starlevels (* 0.10 ** 0.05 *** 0.01) legend label varlabels(_cons Constant income_exp_1825 "Income Level 18-25" lnincome "Income" income_na "Income imputed" year "Year" sex "Gender" race "Race" marital "Marital Status" educ "Years of Education" age "Age" generation "Birth Decade" wrkstat "Working Status" sqrt_hshsize "Household Size (squared)" childs "Number of Children" paeduc_imp "Father Education" maeduc_imp "Mother Education" incom16_imp "Household Income at Age16" paeduc_m "Father Education Imputed" maeduc_m "Mother Education Imputed" incom16_m "Household Income at Age16 Imputed" region "Region" reg16 "Region at 16" w_unemp "Unemployment Level 18-25") stats(N F r2, fmt(3 3) label(N F-value R-squared)) style(tex)

*** Table A6: Results with Probit and Probit-adapted OLS***

clear all
use "Gss_final.dta"

*Column (1)
oprobit jobmeans income_exp_1825 lnincome income_na i.year i.sex i.race i.marital i.educ i.age i.generation i.wrkstat sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region i.reg16  [pweight=wtssall], robust
estimates store a1


*Column (2)
oprobit jobinc income_exp_1825 lnincome income_na i.year i.sex i.race i.marital i.educ i.age i.generation i.wrkstat sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region i.reg16 [pweight=wtssall], robust
estimates store a2


pols_gen jobmeans, gen(pols_var1)
pols_gen jobinc, gen(pols_var2)

*Column (3)
reg pols_var1 income_exp_1825 lnincome income_na i.year i.sex i.race i.marital i.educ i.age i.generation i.wrkstat sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region i.reg16 [pweight=wtssall], robust
estimates store a3
* standard errors clusterred at the level of the region at age 16, bootstrapped (in brackets in the table)
boottest  income_exp_1825, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph

*Column (4)
reg pols_var2 income_exp_1825 lnincome income_na i.year i.sex i.race i.marital i.educ i.age i.generation i.wrkstat sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region i.reg16 [pweight=wtssall], robust
estimates store a4
* standard errors clusterred at the level of the region at age 16, bootstrapped (in brackets in the table)
boottest  income_exp_1825, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph

estout a1 a2 a3 a4 , cells(b(star fmt(3)) se(par fmt(3))) starlevels (* 0.10 ** 0.05 *** 0.01) legend label varlabels(_cons Constant income_exp_1825 "Income Level 18-25" lnincome "Income" income_na "Income imputed" year "Year" sex "Gender" race "Race" marital "Marital Status" educ "Years of Education" age "Age" generation "Birth Decade" wrkstat "Working Status" sqrt_hshsize "Household Size (squared)" childs "Number of Children" paeduc_imp "Father Education" maeduc_imp "Mother Education" incom16_imp "Household Income at Age16" paeduc_m "Father Education Imputed" maeduc_m "Mother Education Imputed" incom16_m "Household Income at Age16 Imputed" region "Region" reg16 "Region at 16" w_unemp "Unemployment Level 18-25") stats(N F r2, fmt(3 3) label(N F-value R-squared)) style(tex)

*** Table A7: Experienced regional income during the impressionable years andpreferences for chances for advancement, job security, and short working hours***

clear all 
use "Gss_final.dta"

*Column (1)
reg jobpromo income_exp_1825 lnincome income_na i.year i.sex i.race i.marital i.educ i.age i.generation i.wrkstat sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region i.reg16 [pweight=wtssall], robust
estimates store a1
* standard errors clusterred at the level of the region at age 16, bootstrapped (in brackets in the table)
boottest  income_exp_1825, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph

*Column (2)
reg jobsec income_exp_1825 lnincome income_na i.year i.sex i.race i.marital i.educ i.age i.generation i.wrkstat sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region i.reg16 [pweight=wtssall], robust
estimates store a2
* standard errors clusterred at the level of the region at age 16, bootstrapped (in brackets in the table)
boottest  income_exp_1825, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph

*Column (3)
reg jobhour income_exp_1825 lnincome income_na i.year i.sex i.race i.marital i.educ i.age i.generation i.wrkstat sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region i.reg16 [pweight=wtssall], robust
estimates store a3
* standard errors clusterred at the level of the region at age 16, bootstrapped (in brackets in the table)
boottest  income_exp_1825, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph


estout a1 a2 a3, cells(b(star fmt(3)) se(par fmt(3))) starlevels (* 0.10 ** 0.05 *** 0.01) legend label varlabels(_cons Constant income_exp_1825 "Income Level 18-25" lnincome "Income" income_na "Income imputed" year "Year" sex "Gender" race "Race" marital "Marital Status" educ "Years of Education" age "Age" generation "Birth Decade" wrkstat "Working Status" sqrt_hshsize "Household Size (squared)" childs "Number of Children" paeduc_imp "Father Education" maeduc_imp "Mother Education" incom16_imp "Household Income at Age16" paeduc_m "Father Education Imputed" maeduc_m "Mother Education Imputed" incom16_m "Household Income at Age16 Imputed" region "Region" reg16 "Region at 16" w_unemp "Unemployment Level 18-25") stats(N F r2, fmt(3 3) label(N F-value R-squared)) style(tex)


*** Table A8: Experienced regional income during the impressionable years andpreferences for meaning and income: controlling for industry and occupation fixed effects ***

** Columns (1) and (2): Industry fixed effects

clear all 
use "Gss_final.dta"

reg jobmeans income_exp_1825 lnincome income_na i.year i.sex i.race i.marital i.educ i.age i.generation i.wrkstat sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region i.reg16 i.indus10 [pweight=wtssall], robust

keep if e(sample)

unique indus10
gen n=1
egen count=sum(n), by(indus10)
drop if count==1

*Column (1)
reg jobmeans income_exp_1825 lnincome income_na i.year i.sex i.race i.marital i.educ i.age i.generation i.wrkstat sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region i.reg16 i.indus10 [pweight=wtssall], robust
estimates store a1
* standard errors clusterred at the level of the region at age 16, bootstrapped (in brackets in the table)
boottest  income_exp_1825, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph

*Column (2)
reg jobinc income_exp_1825 lnincome income_na i.year i.sex i.race i.marital i.educ i.age i.generation i.wrkstat sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region i.reg16 i.indus10 [pweight=wtssall], robust
estimates store a2
* standard errors clusterred at the level of the region at age 16, bootstrapped (in brackets in the table)
boottest  income_exp_1825, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph

estout a1 a2 , cells(b(star fmt(3)) se(par fmt(3))) starlevels (* 0.10 ** 0.05 *** 0.01) legend label varlabels(_cons Constant income_exp_1825 "Income Level 18-25" lnincome "Income" income_na "Income imputed" year "Year" sex "Gender" race "Race" marital "Marital Status" educ "Years of Education" age "Age" generation "Birth Decade" wrkstat "Working Status" sqrt_hshsize "Household Size (squared)" childs "Number of Children" paeduc_imp "Father Education" maeduc_imp "Mother Education" incom16_imp "Household Income at Age16" paeduc_m "Father Education Imputed" maeduc_m "Mother Education Imputed" incom16_m "Household Income at Age16 Imputed" region "Region" reg16 "Region at 16" w_unemp "Unemployment Level 18-25") stats(N F r2, fmt(3 3) label(N F-value R-squared)) style(tex)

clear all 
use "Gss_final.dta" 

** Columns (3) and (4): Occupation fixed effects

clear all 
use "Gss_final.dta"

reg jobmeans income_exp_1825 lnincome income_na i.year i.sex i.race i.marital i.educ i.age i.generation i.wrkstat sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region i.reg16 i.occ10 [pweight=wtssall], robust

keep if e(sample)

unique occ10
gen n=1
egen count=sum(n), by(occ10)
drop if count==1

* Column (3)
reg jobmeans income_exp_1825 lnincome income_na i.year i.sex i.race i.marital i.educ i.age i.generation i.wrkstat sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region i.reg16 i.occ10 [pweight=wtssall], robust
estimates store a3
* standard errors clusterred at the level of the region at age 16, bootstrapped (in brackets in the table)
boottest  income_exp_1825, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph

* Column (4)
reg jobinc income_exp_1825 lnincome income_na i.year i.sex i.race i.marital i.educ i.age i.generation i.wrkstat sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region i.reg16 i.occ10 [pweight=wtssall], robust
estimates store a4
* standard errors clusterred at the level of the region at age 16, bootstrapped (in brackets in the table)
boottest  income_exp_1825, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph

estout a3 a4 , cells(b(star fmt(3)) se(par fmt(3))) starlevels (* 0.10 ** 0.05 *** 0.01) legend label varlabels(_cons Constant income_exp_1825 "Income Level 18-25" lnincome "Income" income_na "Income imputed" year "Year" sex "Gender" race "Race" marital "Marital Status" educ "Years of Education" age "Age" generation "Birth Decade" wrkstat "Working Status" sqrt_hshsize "Household Size (squared)" childs "Number of Children" paeduc_imp "Father Education" maeduc_imp "Mother Education" incom16_imp "Household Income at Age16" paeduc_m "Father Education Imputed" maeduc_m "Mother Education Imputed" incom16_m "Household Income at Age16 Imputed" region "Region" reg16 "Region at 16" w_unemp "Unemployment Level 18-25") stats(N F r2, fmt(3 3) label(N F-value R-squared)) style(tex)

*** Table A9: Experienced regional income during other years and preferences formeaning and income***

clear all
use "income_2016_1825.dta"
append using "income_2014_1825.dta"
append using "income_2012_1825.dta"
append using "income_2010_1825.dta"
append using "income_2008_1825.dta"
append using "income_2006_1825.dta"
append using "income_2004_1825.dta"
append using "income_2002_1825.dta"
append using "income_2000_1825.dta"
append using "income_1998_1825.dta"
append using "income_1996_1825.dta"
append using "income_1994_1825.dta"
append using "income_1993_1825.dta"
append using "income_1991_1825.dta"
append using "income_1990_1825.dta"
append using "income_1989_1825.dta"
append using "income_1988_1825.dta"
append using "income_1987_1825.dta"
append using "income_1986_1825.dta"
append using "income_1985_1825.dta"
append using "income_1984_1825.dta"
append using "income_1983_1825.dta"
append using "income_1982_1825.dta"
append using "income_1980_1825.dta"
append using "income_1978_1825.dta"
append using "income_1977_1825.dta"
append using "income_1976_1825.dta"
append using "income_1975_1825.dta"
append using "income_1974_1825.dta"
append using "income_1973_1825.dta"

sort year age region age_year

gen category=.
replace category=1 if age_year>=0 & age_year<=9

replace category=2 if age_year>=10 & age_year<=17
replace category=3 if age_year>=18 & age_year<=25
replace category=4 if age_year>=26 & age_year<=33
replace category=5 if age_year>=34 & age_year<=41
replace category=6 if age_year>=42 & age_year<=49
replace category=7 if age_year>=50 & age_year<=57
replace category=8 if age_year>=58

egen w_income_1825=mean(inccap_R), by(age year region category)

keep region age category year age_year w_income_1825

reshape wide w_income_1825, i(age year region age_year) j(category)

collapse w_income_18251 w_income_18252 w_income_18253 w_income_18254 w_income_18255 w_income_18256 w_income_18257 w_income_18258, by(age region year)
rename region reg16

gen income_exp_1=ln(w_income_18251)
gen income_exp_2=ln(w_income_18252)
gen income_exp_3=ln(w_income_18253)
gen income_exp_4=ln(w_income_18254)
gen income_exp_5=ln(w_income_18255)
gen income_exp_6=ln(w_income_18256)

merge 1:m age year reg16 using "Gss_final.dta"
drop _merge
merge m:1 year region using "FinalIncome.dta"

keep if region==reg16

** Panel A: Ages 0-9** 

*Column (1)
reg jobmeans income_exp_1 lnincome income_na i.year i.sex i.race i.marital i.educ i.age i.generation i.wrkstat sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region [pweight=wtssall], robust
estimates store a1
* standard errors clusterred at the level of the region at age 16, bootstrapped (in brackets in the table)
boottest  income_exp_1, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph

*Column (2)
reg jobmeans income_exp_1 income_exp_3 lnincome income_na i.year i.sex i.race i.marital i.educ i.age i.generation i.wrkstat sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region i.reg16 [pweight=wtssall], robust
estimates store a2
* standard errors clusterred at the level of the region at age 16, bootstrapped (in brackets in the table)
boottest  income_exp_1, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph
boottest  income_exp_3, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph

*Column (3)
reg jobinc income_exp_1 lnincome income_na i.year i.sex i.race i.marital i.educ i.age i.generation i.wrkstat sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region  [pweight=wtssall], robust
estimates store a3
* standard errors clusterred at the level of the region at age 16, bootstrapped (in brackets in the table)
boottest  income_exp_1, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph

*Column (4)
reg jobinc income_exp_1 income_exp_3 lnincome income_na i.year i.sex i.race i.marital i.educ i.age i.generation i.wrkstat sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region  [pweight=wtssall], robust
estimates store a4
* standard errors clusterred at the level of the region at age 16, bootstrapped (in brackets in the table)
boottest  income_exp_1, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph
boottest  income_exp_3, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph

estout a1 a2 a3 a4 , cells(b(star fmt(3)) se(par fmt(3))) starlevels (* 0.10 ** 0.05 *** 0.01) legend label varlabels(_cons Constant income_exp_1 "Income Levels 0-9" income_exp_2 "Income Levels 10-17" income_exp_3 "Income Levels 18-25" income_exp_4 "Income Levels 26-33" income_exp_5 "Income Levels 34-41" income_exp_1825 "Income Level 18-25" lnincome "Income" income_na "Income imputed" year "Year" sex "Gender" race "Race" marital "Marital Status" educ "Years of Education" age "Age" generation "Birth Decade" wrkstat "Working Status" sqrt_hshsize "Household Size (squared)" childs "Number of Children" paeduc_imp "Father Education" maeduc_imp "Mother Education" incom16_imp "Household Income at Age16" paeduc_m "Father Education Imputed" maeduc_m "Mother Education Imputed" incom16_m "Household Income at Age16 Imputed" region "Region" reg16 "Region at 16" w_unemp "Unemployment Level 18-25") stats(N F r2, fmt(3 3) label(N F-value R-squared)) style(tex)

**Panel B: Ages 10-17** 

*Column (1)
reg jobmeans income_exp_2 lnincome income_na i.year i.sex i.race i.marital i.educ i.age i.generation i.wrkstat sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region  [pweight=wtssall], robust
estimates store a1
* standard errors clusterred at the level of the region at age 16, bootstrapped (in brackets in the table)
boottest  income_exp_2, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph

*Column (2)
reg jobmeans income_exp_2 income_exp_3 lnincome income_na i.year i.sex i.race i.marital i.educ i.age i.generation i.wrkstat sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region [pweight=wtssall], robust
estimates store a2
* standard errors clusterred at the level of the region at age 16, bootstrapped (in brackets in the table)
boottest  income_exp_2, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph
boottest  income_exp_3, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph

*Column (3)
reg jobinc income_exp_2 lnincome income_na i.year i.sex i.race i.marital i.educ i.age i.generation i.wrkstat sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region [pweight=wtssall], robust
estimates store a3
* standard errors clusterred at the level of the region at age 16, bootstrapped (in brackets in the table)
boottest  income_exp_2, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph

*Column (4)
reg jobinc income_exp_2 income_exp_3 lnincome income_na i.year i.sex i.race i.marital i.educ i.age i.generation i.wrkstat sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region [pweight=wtssall], robust
estimates store a4
* standard errors clusterred at the level of the region at age 16, bootstrapped (in brackets in the table)
boottest  income_exp_2, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph
boottest  income_exp_3, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph

estout a1 a2 a3 a4 , cells(b(star fmt(3)) se(par fmt(3))) starlevels (* 0.10 ** 0.05 *** 0.01) legend label varlabels(_cons Constant income_exp_1 "Income Levels 0-9" income_exp_2 "Income Levels 10-17" income_exp_3 "Income Levels 18-25" income_exp_4 "Income Levels 26-33" income_exp_5 "Income Levels 34-41" income_exp_1825 "Income Level 18-25" lnincome "Income" income_na "Income imputed" year "Year" sex "Gender" race "Race" marital "Marital Status" educ "Years of Education" age "Age" generation "Birth Decade" wrkstat "Working Status" sqrt_hshsize "Household Size (squared)" childs "Number of Children" paeduc_imp "Father Education" maeduc_imp "Mother Education" incom16_imp "Household Income at Age16" paeduc_m "Father Education Imputed" maeduc_m "Mother Education Imputed" incom16_m "Household Income at Age16 Imputed" region "Region" reg16 "Region at 16" w_unemp "Unemployment Level 18-25") stats(N F r2, fmt(3 3) label(N F-value R-squared)) style(tex)

**Panel C: Ages 26-33 **

*Column (1)
reg jobmeans income_exp_4 lnincome income_na i.year i.sex i.race i.marital i.educ i.age i.generation i.wrkstat sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region [pweight=wtssall], robust
estimates store a1
* standard errors clusterred at the level of the region at age 16, bootstrapped (in brackets in the table)
boottest  income_exp_4, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph

*Column (2)
reg jobmeans income_exp_4 income_exp_3 lnincome income_na i.year i.sex i.race i.marital i.educ i.age i.generation i.wrkstat sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region [pweight=wtssall], robust
estimates store a2
* standard errors clusterred at the level of the region at age 16, bootstrapped (in brackets in the table)
boottest  income_exp_4, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph
boottest  income_exp_3, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph

*Column (3)
reg jobinc income_exp_4 lnincome income_na i.year i.sex i.race i.marital i.educ i.age i.generation i.wrkstat sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region  [pweight=wtssall], robust
estimates store a3
* standard errors clusterred at the level of the region at age 16, bootstrapped (in brackets in the table)
boottest  income_exp_4, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph

*Column (4)
reg jobinc income_exp_4 income_exp_3 lnincome income_na i.year i.sex i.race i.marital i.educ i.age i.generation i.wrkstat sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region  [pweight=wtssall], robust
estimates store a4
* standard errors clusterred at the level of the region at age 16, bootstrapped (in brackets in the table)
boottest  income_exp_4, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph
boottest  income_exp_3, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph

estout a1 a2 a3 a4 , cells(b(star fmt(3)) se(par fmt(3))) starlevels (* 0.10 ** 0.05 *** 0.01) legend label varlabels(_cons Constant income_exp_1 "Income Levels 0-9" income_exp_2 "Income Levels 10-17" income_exp_3 "Income Levels 18-25" income_exp_4 "Income Levels 26-33" income_exp_5 "Income Levels 34-41" income_exp_1825 "Income Level 18-25" lnincome "Income" income_na "Income imputed" year "Year" sex "Gender" race "Race" marital "Marital Status" educ "Years of Education" age "Age" generation "Birth Decade" wrkstat "Working Status" sqrt_hshsize "Household Size (squared)" childs "Number of Children" paeduc_imp "Father Education" maeduc_imp "Mother Education" incom16_imp "Household Income at Age16" paeduc_m "Father Education Imputed" maeduc_m "Mother Education Imputed" incom16_m "Household Income at Age16 Imputed" region "Region" reg16 "Region at 16" w_unemp "Unemployment Level 18-25") stats(N F r2, fmt(3 3) label(N F-value R-squared)) style(tex)
**Panel D: Ages 34-41**

*Column (1)
reg jobmeans income_exp_5 lnincome income_na i.year i.sex i.race i.marital i.educ i.age i.generation i.wrkstat sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region [pweight=wtssall], robust
estimates store a1
* standard errors clusterred at the level of the region at age 16, bootstrapped (in brackets in the table)
boottest  income_exp_5, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph

*Column (2)
reg jobmeans income_exp_5 income_exp_3 lnincome income_na i.year i.sex i.race i.marital i.educ i.age i.generation i.wrkstat sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region  [pweight=wtssall], robust
estimates store a2
* standard errors clusterred at the level of the region at age 16, bootstrapped (in brackets in the table)
boottest  income_exp_5, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph
boottest  income_exp_3, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph

*Column (3)
reg jobinc income_exp_5 lnincome income_na i.year i.sex i.race i.marital i.educ i.age i.generation i.wrkstat sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region [pweight=wtssall], robust
estimates store a3
* standard errors clusterred at the level of the region at age 16, bootstrapped (in brackets in the table)
boottest  income_exp_5, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph

*Column (4)
reg jobinc income_exp_5 income_exp_3 lnincome income_na i.year i.sex i.race i.marital i.educ i.age i.generation i.wrkstat sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region [pweight=wtssall], robust
estimates store a4
* standard errors clusterred at the level of the region at age 16, bootstrapped (in brackets in the table)
boottest  income_exp_5, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph
boottest  income_exp_3, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph

estout a1 a2 a3 a4 , cells(b(star fmt(3)) se(par fmt(3))) starlevels (* 0.10 ** 0.05 *** 0.01) legend label varlabels(_cons Constant income_exp_1 "Income Levels 0-9" income_exp_2 "Income Levels 10-17" income_exp_3 "Income Levels 18-25" income_exp_4 "Income Levels 26-33" income_exp_5 "Income Levels 34-41" income_exp_1825 "Income Level 18-25" lnincome "Income" income_na "Income imputed" year "Year" sex "Gender" race "Race" marital "Marital Status" educ "Years of Education" age "Age" generation "Birth Decade" wrkstat "Working Status" sqrt_hshsize "Household Size (squared)" childs "Number of Children" paeduc_imp "Father Education" maeduc_imp "Mother Education" incom16_imp "Household Income at Age16" paeduc_m "Father Education Imputed" maeduc_m "Mother Education Imputed" incom16_m "Household Income at Age16 Imputed" region "Region" reg16 "Region at 16" w_unemp "Unemployment Level 18-25") stats(N F r2, fmt(3 3) label(N F-value R-squared)) style(tex)


***Table A10: Experienced regional income during the impressionable years, regional income at the time of the survey, and preferences for meaning and income ***

clear all 
use "Gss_final.dta"

*Column (1)
reg jobmeans income_exp_1825 inccurr lnincome income_na i.year i.sex i.race i.marital i.educ i.age i.generation i.wrkstat sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region i.reg16 [pweight=wtssall], robust
estimates store a1
* standard errors clusterred at the level of the region at age 16, bootstrapped (in brackets in the table)
boottest  income_exp_1825, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph
boottest  inccurr, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph

*Column (2)
reg jobinc income_exp_1825 inccurr lnincome income_na i.year i.sex i.race i.marital i.educ i.age i.generation i.wrkstat sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region i.reg16 [pweight=wtssall], robust
estimates store a2
* standard errors clusterred at the level of the region at age 16, bootstrapped (in brackets in the table)
boottest  income_exp_1825, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph
boottest  inccurr, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph

estout a1 a2, cells(b(star fmt(3)) se(par fmt(3))) starlevels (* 0.10 ** 0.05 *** 0.01) legend label varlabels(_cons Constant income_exp_1825 "Income Level 18-25" inccurr "Income level at survey" lnincome "Income" income_na "Income imputed" year "Year" sex "Gender" race "Race" marital "Marital Status" educ "Years of Education" age "Age" generation "Birth Decade" wrkstat "Working Status" sqrt_hshsize "Household Size (squared)" childs "Number of Children" paeduc_imp "Father Education" maeduc_imp "Mother Education" incom16_imp "Household Income at Age16" paeduc_m "Father Education Imputed" maeduc_m "Mother Education Imputed" incom16_m "Household Income at Age16 Imputed" region "Region" reg16 "Region at 16" w_unemp "Unemployment Level 18-25") stats(N F r2, fmt(3 3) label(N F-value R-squared)) style(tex)

*** Table A11: Experienced regional income and the standard deviation ofexperienced regional income ***

clear all
use "Gss_final.dta"

*Column (1)
reg jobmeans income_exp_1825 sd_income_1825 lnincome income_na i.year i.sex i.race i.marital i.educ i.age i.generation i.wrkstat sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region i.reg16 [pweight=wtssall], robust
estimates store a1
* standard errors clusterred at the level of the region at age 16, bootstrapped (in brackets in the table)
boottest  income_exp_1825, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph
boottest  sd_income_1825, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph

*Column (2)
reg jobinc income_exp_1825 sd_income_1825 lnincome income_na i.year i.sex i.race i.marital i.educ i.age i.generation i.wrkstat sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region i.reg16 [pweight=wtssall], robust
estimates store a2
* standard errors clusterred at the level of the region at age 16, bootstrapped (in brackets in the table)
boottest  income_exp_1825, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph
boottest  sd_income_1825, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph

estout a1 a2, cells(b(star fmt(3)) se(par fmt(3))) starlevels (* 0.10 ** 0.05 *** 0.01) legend label varlabels(_cons Constant income_exp_1825 "Income Level 18-25" sd_income_1825 "Standard deviation of income 18-25" lnincome "Income" income_na "Income imputed" year "Year" sex "Gender" race "Race" marital "Marital Status" educ "Years of Education" age "Age" generation "Birth Decade" wrkstat "Working Status" sqrt_hshsize "Household Size (squared)" childs "Number of Children" paeduc_imp "Father Education" maeduc_imp "Mother Education" incom16_imp "Household Income at Age16" paeduc_m "Father Education Imputed" maeduc_m "Mother Education Imputed" incom16_m "Household Income at Age16 Imputed" region "Region" reg16 "Region at 16" w_unemp "Unemployment Level 18-25") stats(N F r2, fmt(3 3) label(N F-value R-squared)) style(tex)

*** Table A12: Experienced regional income during the impressionable years andoccupation scores ***

clear all
use "Gss_final.dta"

reg jobmeans i.occ10 
keep if e(sample) 
gen n=1
egen count=sum(n), by(occ10)
collapse count, by(occ10)
sort count
gen occupation2=_n

merge 1:m occ10 using "Gss_final.dta"

reg jobmeans ib515.occupation2 [pweight=wtssall], robust

gen score1=.

forvalues v = 1/515 {
replace score1=_b[`v'.occupation2] if occupation2==`v'
}

reg jobinc ib515.occupation2 [pweight=wtssall], robust

gen score2=.
forvalues v = 1/515 {
replace score2=_b[`v'.occupation2] if occupation2==`v'
}

reg score1 lnincome income_na i.year i.sex i.race i.marital i.educ i.age i.generation i.wrkstat sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region i.reg16 income_exp_1825 [pweight=wtssall], robust
keep if e(sample)

sum score1 score2

*Column (1)
reg score1 income_exp_1825 i.year i.sex i.race i.marital i.age i.generation sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region i.reg16 [pweight=wtssall], robust
estimates store a1
* standard errors clusterred at the level of the region at age 16, bootstrapped (in brackets in the table)
boottest  income_exp_1825, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph

*Column (2)
reg score2 income_exp_1825 i.year i.sex i.race i.marital i.age i.generation sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region i.reg16 [pweight=wtssall], robust
estimates store a2
* standard errors clusterred at the level of the region at age 16, bootstrapped (in brackets in the table)
boottest  income_exp_1825, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph

*Column (3)
reg score1 income_exp_1825 i.year i.sex i.race i.marital i.age i.generation sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region i.reg16 [pweight=wtssall] if age>=18 & age<=25, robust
estimates store a3
* standard errors clusterred at the level of the region at age 16, bootstrapped (in brackets in the table)
boottest  income_exp_1825, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph

*Column (4)
reg score2 income_exp_1825 i.year i.sex i.race i.marital i.age i.generation sqrt_hshsize childs paeduc_imp maeduc_imp incom16_imp paeduc_m maeduc_m incom16_m i.region i.reg16 [pweight=wtssall] if age>=18 & age<=25, robust
estimates store a4
* standard errors clusterred at the level of the region at age 16, bootstrapped (in brackets in the table)
boottest  income_exp_1825, cluster(reg16) bootcluster(reg16) reps(5000) seed(321) boottype(wild) weighttype(webb) nograph

estout a1 a2 a3 a4 , cells(b(star fmt(3)) se(par fmt(3))) starlevels (* 0.10 ** 0.05 *** 0.01) legend label varlabels(_cons Constant income_exp_1825 "Income Level 18-25" lnincome "Income" income_na "Income imputed" year "Year" sex "Gender" race "Race" marital "Marital Status" educ "Years of Education" age "Age" generation "Birth Decade" wrkstat "Working Status" sqrt_hshsize "Household Size (squared)" childs "Number of Children" paeduc_imp "Father Education" maeduc_imp "Mother Education" incom16_imp "Household Income at Age16" paeduc_m "Father Education Imputed" maeduc_m "Mother Education Imputed" incom16_m "Household Income at Age16 Imputed" region "Region" reg16 "Region at 16" w_unemp "Unemployment Level 18-25") stats(N F r2, fmt(3 3) label(N F-value R-squared)) style(tex)


///////////////////////////// END //////////////////////////////////////








